package com.neusoft.hifly.information.article.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.metadata.IPage;

import com.neusoft.hifly.commons.exception.SystemErrorException;
import com.neusoft.hifly.information.article.entity.ArtToColObj;

/**
 * Title: 文章资讯服务
 * <p>
 * Description: 文章与栏目关联 Service
 * <p>
 * Copyright: 2019
 * <p>
 * Company: 东软汉枫
 *
 * @author lh_neu
 * @version 1.0.0
 */
public interface IArtToColService {
	/**
	 * 保存对象
	 *
	 * @param organCode
	 *            租户编码
	 * @param organLogicId
	 *            租户逻辑ID
	 * @param obj
	 *            对象
	 * @throws SystemErrorException
	 *             自定义异常
	 */
	void saveOrUpdate(String organCode, long organLogicId, ArtToColObj obj) throws SystemErrorException;

	/**
	 * 根据ID删除对象
	 *
	 * @param organCode
	 *            租户编码
	 * @param organLogicId
	 *            租户逻辑ID
	 * @param columnLogicId
	 *            栏目逻辑ID
	 * @param articleLogicId
	 *            文章逻辑ID
	 */
	void deleteByLogicId(String organCode, long organLogicId, long columnLogicId, long articleLogicId);

	/**
	 * 根据id查询对象
	 *
	 * @param organCode
	 *            租户编码
	 * @param organLogicId
	 *            租户逻辑ID
	 * @param columnLogicId
	 *            栏目逻辑ID
	 * @param articleLogicId
	 *            文章逻辑ID
	 * @return 对象
	 */
	ArtToColObj getByLogicId(String organCode, long organLogicId, long columnLogicId, long articleLogicId);

	/**
	 * 查询所有对象
	 *
	 * @param organCode
	 *            租户编码
	 * @param organLogicId
	 *            租户逻辑ID
	 * @return 对象集合
	 */
	List<ArtToColObj> findAll(String organCode, long organLogicId);

	/**
	 * 根据条件查询
	 *
	 * @param organCode
	 *            租户编码
	 * @param organLogicId
	 *            租户逻辑ID
	 * @param property
	 *            参数。其中isLike:Boolean 是否模糊查询
	 * @return 对象集合
	 */
	List<ArtToColObj> search(String organCode, long organLogicId, Map<String, Object> property);

	/**
	 * 根据条件查询
	 *
	 * @param organCode
	 *            租户编码
	 * @param organLogicId
	 *            租户逻辑ID
	 * @param offset
	 *            当前页数
	 * @param limit
	 *            分页长度
	 * @param property
	 *            参数。其中isLike:Boolean 是否模糊查询
	 * @return 返回Map
	 */
	IPage<ArtToColObj> search(String organCode, long organLogicId, int offset, int limit, Map<String, Object> property);
}